package mx.itesm.papamastodon.dienosaurs;

import android.content.Context;
import android.content.SharedPreferences;

import org.andengine.engine.camera.Camera;
import org.andengine.entity.scene.background.SpriteBackground;
import org.andengine.entity.sprite.ButtonSprite;
import org.andengine.entity.sprite.Sprite;
import org.andengine.entity.text.Text;
import org.andengine.entity.text.TextOptions;
import org.andengine.input.touch.TouchEvent;
import org.andengine.opengl.font.Font;
import org.andengine.opengl.util.GLState;
import org.andengine.util.adt.align.HorizontalAlign;

/**
 * Created by Papa Mastodon on 13/03/2015.
 */
public class EscenaAjustes extends EscenaBase {
    private Sprite spriteFondo;
    private ButtonSprite btn;
    private ButtonSprite btn2;
    private Text text;
    private Font fuente;
    int score;
    int scorh;

    @Override
    public void crearEscena() {
        // Creamos el sprite de manera óptima

        spriteFondo = new Sprite(0, 0, admRecursos.regionFondoAjustes, admRecursos.vbom) {
            @Override
            protected void preDraw(GLState pGLState, Camera pCamera) {
                super.preDraw(pGLState, pCamera);
                pGLState.enableDither();
            }
        };
        setTouchAreaBindingOnActionDownEnabled(true);
        Context conti = ApplicationContextProvider.getContext();
        SharedPreferences prefs = conti.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        fuente=admRecursos.fuente;
        text = new Text(ControlJuego.ANCHO_CAMARA/2+200, ControlJuego.ALTO_CAMARA/2+50, fuente, "1234567890 finalisar gracias", new TextOptions(HorizontalAlign.LEFT), admRecursos.vbom);
        text.setText(prefs.getInt("highScore3",0)+"");
        btn = new ButtonSprite((ControlJuego.ANCHO_CAMARA / 2) + 200, (ControlJuego.ALTO_CAMARA / 2) - 150,
                admRecursos.regionBtncred, admRecursos.vbom) {
            // Aquí el código que ejecuta el botón cuando es presionado
            @Override
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionUp()) {
                    // Cambia a la escena de JUEGO
                    admEscenas.crearEscenaAcercaDe();
                    admEscenas.setEscena(TipoEscena.ESCENA_ACERCA_DE);
                    admEscenas.liberarEscenaAjustes();
                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };

        btn2 = new ButtonSprite((ControlJuego.ANCHO_CAMARA / 2)+ 30, (ControlJuego.ALTO_CAMARA / 2) +150,
                admRecursos.btnmusreg, admRecursos.vbom) {
            // Aquí el código que ejecuta el botón cuando es presionado
            @Override
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionUp()) {
                    if(ControlJuego.play){
                        ControlJuego.play=false;
                        ControlJuego.musica.pause();
                    }
                    else{
                        ControlJuego.play=true;
                        ControlJuego.musica.play();
                    }

                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };

        // Configuración de la imagen
        spriteFondo.setPosition(ControlJuego.ANCHO_CAMARA / 2, ControlJuego.ALTO_CAMARA / 2);

        // Crea el fondo de la pantalla
        SpriteBackground fondo = new SpriteBackground(1, 0.5f, 0, spriteFondo);
        setBackground(fondo);
        setBackgroundEnabled(true);
        this.attachChild(btn);
        this.registerTouchArea(btn);
        this.attachChild(btn2);
        this.attachChild(text);
        this.registerTouchArea(btn2);
    }

    @Override
    public void onBackKeyPressed() {
        // Regresar al MENU principal
        admEscenas.crearEscenaMenu();
        admEscenas.setEscena(TipoEscena.ESCENA_MENU);
        admEscenas.liberarEscenaAjustes();
    }

    @Override
    public TipoEscena getTipoEscena() {
        return TipoEscena.ESCENA_AJUSTES;
    }

    @Override
    public void liberarEscena() {
        // Liberar cada recurso usado en esta escena
        spriteFondo.detachSelf();   // Se desconecta de la escena
        spriteFondo.dispose();      // Libera la memoria

        this.detachSelf();      // La escena se deconecta del engine
        this.dispose();         // Libera la memoria
    }
}
